# 需求：
# 1. 定义动物类， 动物有姓名和年龄属性， 具有吃和睡的行为
# 2. 定义猫类， 猫类具有动物类的所有属性和方法， 并且具有抓老鼠的特殊行为
# 3. 定义狗类， 狗类具有动物类的所有属性和方法， 并且具有看门的特殊行为
# 4. 定义哮天犬类， 哮天犬类具有狗类的所有属性和方法， 并且具有飞的特殊行为

class Animal(object):
    """动物类"""
    def __init__(self, name, age):
        """设置属性"""
        self.name = name  # 姓名
        self.age = age  # 年龄
    def eat(self):
        """吃方法"""
        print(f"{self.name}吃东西")
    def sleep(self):
        """睡方法"""
        print(f"{self.name}要睡觉")
class Cat(Animal):
    """猫类"""
    def catch(self):
        """抓老鼠方法"""
        print(f"{self.name}会抓老鼠")
class Dog(Animal):
        """狗类"""
        def look_door(self):
            """看门方法"""
            print(f"{self.name}会看门")
class XiaoTianQuan(Dog):
        """哮天犬类"""
        def fly(self):
            """飞方法"""
            print(f"{self.name}会飞")
# 创建对象
tom = Cat("汤姆", 3)
xtq = XiaoTianQuan("天神",100)
# 调用方法
tom.catch()
tom.eat()
# 调用方法
xtq.fly()
xtq.look_door()
xtq.sleep()
# 子类对象拥有父类的所有属性和方法